Agrupamento sql como usar?

agrupamento sql

Use a clausula GROUP BY para agrupar coluna campos com o mesmo valor.


Sintaxe:


SELECT campos agrupados ou com agregação
FROM
tabela
JOIN ligação de tabelas quando necessário
WHERE restrições da cosulta
GROUP BY campos que serão agrupados;


Exemplos:

Para saber a quantidade de notas emitidas de venda em um mês, para cada cidade seria algo como:


SELECT c.municipio as cidade,  count(v.numero_nota) as quantidade_de_venda
FROM vendas_cabecalho v  
INNER JOIN clientes c ON (c.codigo = v.cliente)
WHERE v.data >= '2020-06-01' AND v.data <= '2020-06-30'
GROUP BY c.municipio
ORDER BY count(v.numero_nota) DESC
LIMIT 3;


Resultado:

cidade quantidade_de_venda
São Paulo 123
Rio de Janeiro 102
Brasilia 86


Para saber o valor da venda total de cada cidade no mês seria algo como:


SELECT c.municipio as cidade, SUM(v.valor)
FROM vendas_cabecalho v  
INNER JOIN clientes c ON (c.codigo = v.cliente)
WHERE v.data >= '2020-06-01' AND v.data <= '2020-06-30'
GROUP BY c.municipio
ORDER BY
SUM(v.numero_nota) DESC
LIMIT 3;


Resultado:

cidade valor
São Paulo 23030,45
Rio de Janeiro 21132,35
Brasilia 18462,86


Para saber o valor da venda total de cada Bairro de Porto em um mês seria algo como:


SELECT c.municipio as cidade, c.bairro, SUM(v.valor)
FROM
vendas_cabecalho v  
INNER JOIN clientes c ON (c.codigo = v.cliente)
WHERE
v.data >= '2020-06-01' AND v.data <= '2020-06-30'AND c.municipio = 'Porto Alegre'
GROUP BY c.municipio
ORDER BY SUM(v.numero_nota) DESC
LIMIT 3;



Esse exemplo seria do MySQL, pois no Postgre daria erro.

Resultado:

cidade bairro valor
Porto Alegre Centro 4159,62
Porto Alegre Menino Deus 39416,16
Porto Alegre Bom Fim 22462,86


O agrupamento serve para juntar informações iguais e tratar outras ou não com as funções de agregação.

Quais são as funções de agregação do GROUP BY?
Como usar funções de agregação com GROUP BY?

Com o GROUP BY pode deixar apenas o conteúdo único sem repetir campos na consulta.

Pode ser usado uma ou mais colunas no GROUP BY. A forma como as colunas com conteúdos visíveis são tratadas varia um pouco em cada banco de dados. Por exemplo quando se coloca uma coluna após o SELECT no Postgre aparece um erro, no MySQL apenas se considera os valores diferentes na apresentação.

Como mostrado nos exemplos as funções de agregação servem para contar(COUNT), somar(SUM), mostrar o valor maior(MAX), ou menor(MIN), mostrar a média(AVG), entre outras coisas de um grupo de informações idênticas.

Quer acompanhar as novidade do site?

Leia mais em:

Agrupamento sql como usar?

Última atualização: 2023-02-15

Quer acompanhar as novidade do site?
Veja também:

Como remover caracteres especiais no mysql?

remover caracteres especiais mysql

Como fazer agrupamento sql por raiz do cnpj?

agrupamento sql raiz do cnpj

Resumão dos principais assuntos para a prova do CRF-RS 2024 de acordo com o edital e provas relacionadas.

Principais assuntos prova CRF RS 2024

Como alterar nome da tabela no MySQL?

Alterar nome de tabela mysql

Como buscar entrada e saída de produto por um período com sql?

Entrada e saída de produtos por período SQL

Como retirar pontos e traços do cpf no Postgre?

tirar pontos e traços cpf no postgre

Web Stories